using System;
using System.Collections.Generic;
using System.Text;

namespace Vj.Ann.Old
{
    //public class ThreeLayerNetwork
    //{
    //    private double learningRate = 0.3;
    //    private Random gen = new Random();
        
    //    private List<Layer> layerList;
    //    private List<Pattern> patternList;

    //    // # of layers = layerInfo.count(); layerInfo[i] => # nodes in i'th layer
    //    // public Network(double []layerInfo)
    //    public ThreeLayerNetwork()
    //    {
    //        #region Define Training Patterns

    //        patternList = new List<Pattern>();
            
    //        for(int i = 0; i < 4; i++)
    //            patternList.Add(new Pattern(2, 1));

    //        patternList[0].Inputs = new double[2] {0.0, 0.0};
    //        patternList[0].Outputs = new double[1] { 0.0 };

    //        patternList[1].Inputs = new double[2] { 0.0, 1.0 };
    //        patternList[1].Outputs = new double[1] { 1.0 };

    //        patternList[2].Inputs = new double[2] { 1.0, 0.0 };
    //        patternList[2].Outputs = new double[1] { 1.0 };

    //        patternList[3].Inputs = new double[2] { 1.0, 1.0 };
    //        patternList[3].Outputs = new double[1] { 0.0 };

    //        #endregion

    //        #region Define Layers


    //        // a layer has nodes + connections?

    //        layerList = new List<Layer>();

    //        layerList.Add(new Layer(2,1));
    //        layerList.Add(new Layer(3,2));
    //        layerList.Add(new Layer(1,3));


    //        #endregion

    //    }

    //    public Layer this[int index]
    //    {
    //        get
    //        { return layerList[index]; }
    //        set
    //        { layerList[index] = value; }
    //    }

    //    private double sigmoid(double x)
    //    {
    //        return 1 / (1 + Math.Exp(-x));
    //    }

    //    public bool Train(double []targets)
    //    {

    //        for (int i = 0; i < layerList.Count; i++)
    //        {
    //            for (int j = 0; j < layerList[i].Count; j++)
    //            {
    //                Neuron tmp = layerList[i][j];                
    //            }            
    //        }


    //        return false;
    //    }

    //    public bool Run()
    //    {

    //        // start with two doubles

    //        // pass inputs into input layer neurons


    //        // calculate middle layer weights*input




    //        // end with one double


    //        double[] input = new double[layerList[0].Count];
    //        input[0] = 1.0;
    //        input[1] = 1.0;
            

    //        for (int i = 0; i < layerList[0].Count; i++)
    //        {
    //            layerList[0][i].Activation = input[i];
    //        }


    //        for (int i = 0; i < layerList[1].Count; i++)
    //        { 
    //            double sum = 0.0;

    //            //for (int j = 0; j < layerList[1][i].; j++)
    //            //{ 
                
                
                
    //            //}

    //            layerList[1][i].Activation = SigmoidFunction.sigmoid(sum);
            
    //        }
            

    //        for (int i = 0; i < layerList.Count; i++)
    //        {
    //            for (int j = 0; j < layerList[i].Count; j++)
    //            {
    //                //Neuron tmp = layerList[i][j];
    //            }
    //        }





    //        return false;        
    //    }


    //    public bool Save(string filename)
    //    { return false; }

    //    public bool Read(string filename)
    //    { return false; }
        
    //}
}
